package com.ssm.equip.rpc.service.impl.lock;

import com.github.pagehelper.PageInfo;
import com.ssm.equip.dao.mapper.lock.LockDao;
import com.ssm.equip.dao.model.Lock;
import com.ssm.equip.rpc.api.lock.LockService;
import com.ssm.upms.dao.mapper.ssm.LzDao;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

/**
 * 2017年5月23日  闫增宝 地锁管理
* 地锁管理 Service
* 地锁管理 Service
* @author GaoXiang
* @version 1.0
*/
@Service
public class LockServiceImpl extends LzDao<Lock> implements LockService {

    @Resource
    private LockDao lockDao;

/*    @Resource
    private ParkingDao parkingDao;

    @Resource
    private ParkinglotDao parkinglotDao;*/


    /**
    * 保存数据
    * @param lock 实体对象
    * @return 实体id
    * @throws Exception 数据保存异常
    */
    public Integer insert(Lock lock) throws Exception {
        return lockDao.insert(lock);
    }

    /**
    * 根据 id 修改
    * @param lock 带id的实体对象
    * @return 受影响的行数
    * @throws Exception 数据修改异常
    */
    public Integer updateById(Lock lock) throws Exception {
        return lockDao.updateById(lock);
    }

    /**
    * 根据 id 删除
    * @param id 数据id
    * @return 受影响的行数
    * @throws Exception 数据删除异常
    */
    public Integer deleteById(String id) throws Exception {
     /*  Parkinglot parkinglot= parkinglotDao.selectByLockId(id);
       if(parkinglot!=null){
           parkinglot.setLockId("");
           parkinglot.setSwitchLock("2");//没有地锁
           parkinglotDao.updateById(parkinglot);
       }*/
        return lockDao.deleteById(id);
    }

    /**
    * 根据 id 查找
    * @param id 实体id
    * @return 实体
    */
    public Lock selectById(String id) {
        return  lockDao.selectById(id);
    }

    /**
    * 根据 id 批量删除
    * @param ids 要删除的id
    * @return 影响的行数
    * @throws Exception 数据删除异常
    */
    public Integer deleteByIds(List<String> ids) throws Exception {
      /*  List<Parkinglot> parkinglots=parkinglotDao.selectByLockIds(ids);
        if(parkinglots.size()>0){
            for(int i=0;i<parkinglots.size();i++){
              Parkinglot p=parkinglots.get(i);
              p.setSwitchLock("2");
              p.setLockId("");
              parkinglotDao.updateById(p);
            }
        }*/
        return lockDao.deleteByIds(ids);
    }

    /**
    * 查询列表
    * @param map 参数
    * @return 列表
    */
    public PageInfo<Lock> list(Map map) {
        PageInfo<Lock> locks=lockDao.list(map);
       /* for(Lock l:locks.getList()){
            l.setParking(parkingDao.selectById(l.getParkingId()));
        }*/
        return lockDao.list(map);
    }

    /**
    * 查询列表 带分页
     * 2017-5-24 15:47:19 韩榕榕
    * @param map 参数
    * @param page 页码
    * @param size 每页大小
    * @return 列表
    */
    public PageInfo<Lock> list(Map map, int page, int size) {
        PageInfo<Lock> lockPageInfo=lockDao.list(map,page,size);
    /*    for(Lock l:lockPageInfo.getList()){
            l.setParking(parkingDao.selectById(l.getParkingId()));
        }*/
        return  lockPageInfo;
    }



    /**
     * 统计同一个wlan下地锁的个数
     * @param lock 实体类
     * @return 统计的个数
     */
    public  Long countNumber(Lock lock){return  lockDao.countNumber(lock);}
    /**
     * 2017年6月7日 姜延鹏 根据地锁ID查询地锁对象
     * @param id
     * @return
     */
    public Lock selectByLockId(String id){
        return lockDao.selectByLockId(id);
    }

}
